#include "sqlist.h"

// 在顺序表va中按递增顺序插入元素x
bool InsertIncList(SqList* va, ElemType x) {
    if (va->length == MAXSIZE) {
        return false;  // 顺序表满
    }
    int i;
    for (i = va->length - 1; i >= 0 && va->data[i] > x;
         --i) {  // 值大于x的元素循环右移，为插入位置腾出空间
        va->data[i + 1] = va->data[i];
    }
    va->data[i + 1] = x;  // 插入元素x到第i+1个位置
    ++va->length;
    return true;
}

int main() {
    SqList L;
    ElemType a[] = {1, 2, 3, 4, 6, 7, 8, 9};

    CreateList(&L, a, 8);
    PrintList(&L);

    InsertIncList(&L, 10);  // 测试边界情况
    printf("插入10后：");
    PrintList(&L);

    InsertIncList(&L, 0);  // 测试边界情况
    printf("插入0后：");
    PrintList(&L);

    InsertIncList(&L, 5);  // 测试一般情况
    printf("插入5后：");
    PrintList(&L);

    return 0;
}